package zb.blog.base.util.qiniu.test;

import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;

import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;
import org.junit.jupiter.api.Test;
import zb.blog.base.global.GlobalVar;

/**
 * @Author: BinZhang
 * @Date: 2018/5/27 22:44
 * @Description:简单上传（非覆盖上传）
 */
public class SimpleUpload {

    /**
     * 如果上传的文件FilePath跟之前上传的相同则会覆盖上次传上去的文件
     * 如果上传的文件FilePath跟之前不同,key已经在七牛云上存在，则会抛出异常，提示文件已经存在 {"error":"file exists"}
     */
    @Test
    public void simpleUpload() {

        //要上传的空间
        String bucketname = "user";
        //上传到七牛后保存的文件名
        String key = "zip/js-sdk-2.2.2.zip";
        //上传文件的路径
        String FilePath = "F:\\download\\chromeDownload\\js-sdk-2.2.2.zip";

        //密钥配置
        Auth auth = Auth.create(GlobalVar.QNY_ACCESS_KEY, GlobalVar.QNY_SECRET_KEY);
        //获取token
        String token = auth.uploadToken(bucketname);

        String URL = "http://bucketdomain/key";
        //自动识别要上传的空间(bucket)的存储区域是华东、华北、华南。
        Zone z = Zone.autoZone();
        Configuration c = new Configuration(z);

        //创建上传对象
        UploadManager uploadManager = new UploadManager(c);
        try {
            //调用put方法上传
            Response res = uploadManager.put(FilePath, key, token);
            //打印返回的信息
            System.out.println("success:" + res.bodyString());
        } catch (QiniuException e) {
            e.printStackTrace();
            Response r = e.response;
            // 请求失败时打印的异常的信息
            System.out.println("error:" + r.toString());
        }
    }
}
